home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / lisp / eulisp / you-075a.lha / you-075a / iset.h < prev    next >
Text File  |  1992-06-18  |  1KB  |  80 lines

  1. /* Numbers for instruction set. 
  2.    Used by instruct.em and bytecodes.h
  3.    */
  4.  
  5. #define BC_NOP 0
  6.       
  7.       /* Globals  etc */
  8. #define BC_PUSH_GLOBAL 1 
  9. #define BC_SET_GLOBAL 2
  10.  
  11. #define BC_PUSH_SPECIAL 3
  12. #define BC_PUSH_STATIC  4
  13. #define BC_PUSH_FIXNUM 5
  14. #define BC_SET_STATIC  6
  15.  
  16.       /* stack refs */
  17. #define BC_PUSH_NTH 7
  18. #define BC_SET_NTH 8
  19.       
  20.       /* Stack abuse */
  21. #define BC_SLIDE_STACK 9
  22. #define BC_SWAP        10
  23. #define BC_DROP     11
  24.       
  25.       /* env reference */
  26. #define BC_ENV_REF     12
  27. #define BC_SET_ENV     13
  28. #define BC_POP_ENV     14
  29. #define BC_MAKE_ENV     15
  30.  
  31.       /* object reference */
  32. #define BC_VREF     16
  33. #define BC_SET_VREF     17
  34.  
  35. #define BC_SLOT_REF     18
  36. #define BC_SET_SLOT     19
  37.  
  38. #define BC_SET_TYPE     20
  39.  
  40.       /* Leaping merrily */
  41. #define BC_BRANCH     21
  42. #define BC_BRANCH_NIL     22
  43.  
  44.       /* Calling things */
  45. #define BC_APPLY_ANY         23
  46. #define BC_APPLY_BVF         24
  47. #define BC_APPLY_METHODS     25
  48. #define BC_PUSH_LABEL     26
  49.       
  50.       /* and return */
  51. #define BC_RETURN     27
  52.  
  53. #define BC_EXIT     28
  54.  
  55. /* allocation */    
  56. #define BC_CONS     29
  57. #define BC_ALLOC_CLOSURE 30
  58. #define BC_PUSH_INT     31
  59.  
  60. /* Tests */
  61. #define BC_NULLP 32
  62. #define BC_EQP     33
  63. #define BC_ARG_CHECK 34
  64.  
  65. /* Reflection */
  66. #define BC_CONTEXT    35
  67. #define BC_ENSURE_STACK 36
  68. /* Inline method list */
  69.  
  70. /* Arithmetic */
  71. #define METHOD_INT_ADD         0
  72. #define METHOD_INT_DIFF        1
  73. #define METHOD_INT_MULT        2
  74. #define METHOD_INT_DIV        3
  75. #define METHOD_INT_EQUAL    4
  76.  
  77. /* Stream primitives */
  78. #define METHOD_STREAM_WRITE    5
  79. #define METHOD_STREAM_READ    6
  80.